关于连续型随机变量的分布转换,除了使用反CDF函数将均匀分布函数转换为其他分布函数以外,存在一种通用办法实现不同分布之间的转换,不只局限于均匀分布。
假定存在随机变量X,其累积分布函数为FX(x)。若存在单调函数g,使得Y=g(X)(因为是单调函数,因此X与Y的关系为单射),则为了计算Y的累积分布函数FY(y),
设g(x)此时为严格单调递增
FY(y)====Pr{Y⩽y}Pr{g(X)⩽y}Pr{X⩽g−1(y)}FX(g−1(y))
此时对终式左右对x求导(累积分布函数导数为概率密度函数)
fY(y)dxdy=fX(g−1(y))fY(y)=(dxdy)−1fX(g−1(y))
再设g(x)此时为严格单调递减
FY(y)====Pr{Y⩽y}Pr{g(X)⩽y}1−Pr{X⩽g−1(y)}1−FX(g−1(y))
同样的有
fY(y)=−(dxdy)−1fX(g−1(y))
则有fY(y)=∣(dxdy)−1∣fX(g−1(y))。
PBRT中讲到,当我们有一概率密度为px(x)的随机变量X,想要转换为满足已知分布为py(y)的随机变量Y,那么即有下式成立(此过程与上式正好相反)
FX(x)====Pr{X⩽x}Pr{g(X)⩽g(x)}Pr{Y⩽g(x)}FY(g(x))
g(x)=FY−1(FX(x))或当g(X)为单调减函数时g(x)=FY−1(1−FX(x)),PBRT中未对此处进行详细说明。
因此当X为满足[0,1]区间均匀分布的随机变量时,FX(x)=x,那么上式中FX(x))或是1−FX(x)都满足[0,1]区间均匀分布,则g(x)=FY−1(x),即Inverse Transform Sampling得证。
多维随机变量的转换T(x)为双射变换,则满足fY(y)=fY(T(x))=∣JT(x)∣fX(x),且T(x)=(T1(x),⋯Tn(x))
JT(x)=⎣⎡∂x1∂T1⋮∂x1∂Tn⋯⋱⋯∂xn∂T1⋮∂xn∂Tn⎦⎤